package se.johan.wendler.util;
import android.text.Editable;
import android.text.TextWatcher;
import android.widget.EditText;
/**
* TextWatcher which handles the 3 EditTexts which will calculate the One rep max based
* on Wendler's formula.
*/
public class GenericTextWatcher implements TextWatcher {
private final EditText mWeight;
private final EditText mReps;
private final EditText mOneRm;
/**
* Constructor.
*/
public GenericTextWatcher(EditText weight, EditText reps, EditText oneRm) {
mWeight = weight;
mReps = reps;
mOneRm = oneRm;
}
/**
* Called before the text is changed.
*/
@Override
public void beforeTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
/**
* Called when the text is changed.
*/
@Override
public void onTextChanged(CharSequence charSequence, int i, int i2, int i3) {
}
/**
* Called after the text is changed.
*/
@Override
public void afterTextChanged(Editable editable) {
try {
if (mWeight.getText().toString().trim().length() > 0
&& mReps.getText().toString().trim().length() > 0) {
int oneRm = WendlerMath.calculateOneRm(
Double.parseDouble(mWeight.getText().toString()),
Integer.parseInt(mReps.getText().toString()));
mOneRm.setText(String.valueOf(oneRm));
}
} catch (NumberFormatException e) {
// Sometimes they still are empty
}
}
}